//
//  BaiheAdSDKBannerAdView.h
//  BaiheAdSDK
//
//  Created by 陈坤 on 2025/9/28.
//

#import <UIKit/UIKit.h>

NS_ASSUME_NONNULL_BEGIN

@protocol BaiheAdSDKBannerAdViewDelegate;

@interface BaiheAdSDKBannerAdView : UIView
/**
 广告生命周期代理
*/
@property (nonatomic, weak) id<BaiheAdSDKBannerAdViewDelegate> delegate;

/**
 广告位id
*/
@property (nonatomic, copy) NSString *posId;

/**
 广告刷新时间间隔，30-120s之间.
*/
@property (nonatomic, assign) int refershTime;

/**
 是否展示关闭按钮，默认不展示，为YES则展示
*/
@property (nonatomic, assign) BOOL showCloseView;

/**
 是否为非标准banner广告位，默认为标准广告位
 */
@property (nonatomic, assign) BOOL nonstandard;

/**
 viewControllerForPresentingModalView
 详解：[必选]开发者需传入用来弹出目标页的ViewController，一般为当前ViewController
*/
@property (nonatomic, weak) UIViewController *controller;

- (id)new NS_UNAVAILABLE;
- (id)init NS_UNAVAILABLE;

/*
 初始化bannerView
 @param frame 期望的banner视图尺寸
*/
- (instancetype)initWithFrame:(CGRect)frame;

/**
 拉取并展示广告
*/
- (void)loadAndShow;

- (void)reloadData;

- (void)setAdScenes:(NSDictionary *)scenes;

/**
 获取广告的竞价价格，单位分，为0则表示未成功获取到广告，或者不支持竞价，开启该功能需要联系媒介商务
 */
- (NSInteger)getBidPrice;
/**
 发送竞价成功上报
 @param price 赢价价格，单位分
 */
- (void)sendWinNotice:(NSInteger)price;

/**
 发送竞价失败上报
 @param price 赢价价格，单位分
 */
- (void)sendLossNotice:(NSInteger)price;

@end

@protocol BaiheAdSDKBannerAdViewDelegate <NSObject>

/**
 广告获取成功
 
 @param bannerAdView banner实例
 */
- (void)Baihe_bannerAdViewDidReceived:(BaiheAdSDKBannerAdView *)bannerAdView;

/**
 广告拉取失败
 
 @param bannerAdView banner实例
 @param error 错误描述
 */
- (void)Baihe_bannerAdViewFailToReceived:(BaiheAdSDKBannerAdView *)bannerAdView error:(NSError *)error;

/**
 广告点击
 
 @param bannerAdView 广告实例
 */
- (void)Baihe_bannerAdViewClicked:(BaiheAdSDKBannerAdView *)bannerAdView;

/**
 广告关闭
 
 @param bannerAdView 广告实例
 */
- (void)Baihe_bannerAdViewClose:(BaiheAdSDKBannerAdView *)bannerAdView;

/**
 广告展示
 
 @param bannerAdView 广告实例
 */
- (void)Baihe_bannerAdViewExposure:(BaiheAdSDKBannerAdView *)bannerAdView;

/**
 广告展示上报
 
 @param bannerAdView 广告实例
 */
- (void)Baihe_bannerAdViewExposureReport:(BaiheAdSDKBannerAdView *)bannerAdView;

/**
 广告点击上报
 
 @param bannerAdView 广告实例
 */
- (void)Baihe_bannerAdViewClickedReport:(BaiheAdSDKBannerAdView *)bannerAdView;

/**
 关闭落地页
 
 @param bannerAdView 广告实例
 */
- (void)Baihe_bannerAdViewCloseLandingPage:(BaiheAdSDKBannerAdView *)bannerAdView;

@end

NS_ASSUME_NONNULL_END
